home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 4 / BBS in a Box - Macintosh - Volume IV (January 1992) (BBS in a Box).iso / Files / Prog / M / LSC213.cpt / ScriptMgr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-09-26  |  4.3 KB  |  288 lines  |  [TEXT/KAHL]

  1.  
  2. /*
  3.  *  ScriptMgr.h
  4.  *
  5.  *  Copyright (c) 1986, 1987 THINK Technologies, Inc.
  6.  *  These interfaces are based on information copyrighted
  7.  *  by Apple Computer, Inc., 1985, 1986, 1987.
  8.  *
  9.  */
  10.  
  11. #ifndef _ScriptMgr_
  12. #define _ScriptMgr_
  13.  
  14.  
  15. #define smgrVers        0x0155
  16.  
  17.  
  18. /* Script interface identification numbers */
  19.  
  20. enum {
  21.     smRoman,
  22.     smJapanese,
  23.     smChinese,
  24.     smKorean,
  25.     smArabic,
  26.     smHebrew,
  27.     smGreek,
  28.     smRussian,
  29.     smRSymbol,
  30.     smDevanagari,
  31.     smGurmukhi,
  32.     smGujarati,
  33.     smOriya,
  34.     smBengali,
  35.     smTamil,
  36.     smTelugu,
  37.     smKannada,
  38.     smMalayalam,
  39.     smSinhalese,
  40.     smBurmese,
  41.     smKhmer,
  42.     smThai,
  43.     smLaotian,
  44.     smGeorgian,
  45.     smArmenian,
  46.     smMaldivian,
  47.     smTibetan,
  48.     smMongolian,
  49.     smAmharic,
  50.     smSlavic,
  51.     smVietnamese,
  52.     smSindhi,
  53.     smReserved2
  54. };
  55.  
  56. /* Language Codes */
  57.  
  58. enum {
  59.     langEnglish,
  60.     langFrench,
  61.     langGerman,
  62.     langItalian,
  63.     langDutch,
  64.     langSwedish,
  65.     langSpanish,
  66.     langDanish,
  67.     langPortugese,
  68.     langNorwegian,
  69.     langHebrew,
  70.     langJapanese,
  71.     langArabic,
  72.     langFinish,
  73.     langGreek,
  74.     langIcelandic,
  75.     langMalta,
  76.     langTurkish,
  77.     langYugoslavian,
  78.     langChinese,
  79.     langUrdu,
  80.     langHindi,
  81.     langThai
  82. };
  83.  
  84. /* Calendar Codes */
  85.  
  86. enum {
  87.     calGregorian,
  88.     calArabicCivil,
  89.     calArabicLunar,
  90.     calJapanese,
  91.     calJewish,
  92.     calCoptic
  93. };
  94.  
  95. /* Integer Format Codes */
  96.  
  97. enum {
  98.     intWestern,
  99.     intArabic,
  100.     intRoman,
  101.     intJapanese
  102. };
  103.  
  104. /* CharByte return values. */
  105.  
  106. enum {
  107.     smFirstByte = -1,
  108.     smSingleByte,
  109.     smLastByte,
  110.     smMiddleByte
  111. };
  112.  
  113. /* CharType field masks */
  114.  
  115. #define smcTypeMask            0x000F
  116. #define smcReserved            0x00F0
  117. #define smcClassMask        0x0F00
  118. #define smcReserved12        0x1000
  119. #define smcRightMask        0x2000
  120. #define smcUpperMask        0x4000
  121. #define smcDoubleMask        0x8000
  122.  
  123. /* CharType character types. */
  124.  
  125. enum {
  126.     smCharPunct,
  127.     smCharAscii,
  128.     smCharEuro = 7
  129. };
  130.  
  131. /* CharType punctuation types. */
  132.  
  133. #define smPunctNormal        0x0000
  134. #define smPunctNumber        0x0100
  135. #define smPunctSymbol        0x0200
  136. #define smPunctBlank         0x0300
  137.  
  138. /* CharType case modifers. */
  139.  
  140. #define smCharLower          0x0000
  141. #define smCharUpper          0x4000
  142.  
  143. /* CharType character size modifiers (1 or 2 bytes). */
  144.     
  145. #define smChar1byte          0x0000
  146. #define smChar2byte          0x8000
  147.  
  148.  
  149. /* Char2Pixel directions. */
  150. enum {
  151.     smRightCaret = -1,
  152.     smLeftCaret,
  153.     smHilite
  154. };
  155.    
  156.  
  157. /* Transliterate target types. */
  158.  
  159. enum {
  160.     smTransAscii,
  161.     smTransNative
  162. };
  163.  
  164. /* Transliterate target modifiers. */
  165.  
  166. #define smTransLower         0x4000
  167. #define smTransUpper         0x8000
  168.  
  169. /* Transliterate source masks. */
  170.  
  171. #define smMaskAscii          0x0001
  172. #define smMaskNative         0x0002
  173.  
  174.     
  175. /* Result values from GetEnvirons, SetEnvirons, GetScript and SetScript calls. */
  176.  
  177. enum {
  178.     smBadScript = -2,
  179.     smBadVerb,
  180.     smNotInstalled
  181. };
  182.  
  183. /* GetEnvirons/SetEnvirons verbs. */
  184.  
  185. enum {
  186.     smVersion = 0,
  187.     smMunged = 2,
  188.     smEnabled = 4,
  189.     smBidirect = 6,
  190.     smFontForce = 8,
  191.     smIntlForce = 10,
  192.     smForced = 12,
  193.     smDefault = 14,
  194.     smPrint = 16,
  195.     smSysScript = 18,
  196.     smLastScript = 20,
  197.     smKeyScript = 22,
  198.     smSysRef = 24,
  199.     smKeyCache = 26,
  200.     smKeySwap = 28
  201. };
  202.     
  203.  
  204. /* GetScript/SetScript verbs. */
  205.  
  206. enum {
  207.     smScriptVersion = 0,
  208.     smScriptMunged = 2,
  209.     smScriptEnabled = 4,
  210.     smScriptRight = 6,
  211.     smScriptJust = 8,
  212.     smScriptRedraw = 10,
  213.     smScriptSysFond = 12,
  214.     smScriptAppFond = 14,
  215.     smScriptBundle = 16,
  216.     smScriptNumber = 16,
  217.     smScriptDate = 18,
  218.     smScriptSort = 20,
  219.     smScriptRsvd1 = 22,
  220.     smScriptRsvd2 = 24,
  221.     smScriptRsvd3 = 26,
  222.     smScriptRsvd4 = 28,
  223.     smScriptRsvd5 = 30,
  224.     smScriptKeys = 32,
  225.     smScriptIcon = 34,
  226.     smScriptPrint = 36,
  227.     smScriptTrap = 38,
  228.     smScriptCreator = 40,
  229.     smScriptFile = 42,
  230.     smScriptName = 44
  231. };
  232.     
  233. /* Bits in the smScriptFlags word */
  234.  
  235. enum {
  236.     smsfIntellCP,
  237.     smsfSingByte,
  238.     smsfNatCase,
  239.     smsfContext
  240. };
  241.  
  242. /* Roman script constants */
  243.  
  244. #define romanVers            1
  245. #define romanSysFond        $3FFF
  246. #define romanAppFond        3
  247.  
  248. /* Script Manager font equates. */
  249.  
  250. #define smFondStart            $4000
  251. #define smFondEnd            $C000
  252.  
  253.     
  254.  
  255. typedef short OffsetTable[6];
  256.  
  257. typedef struct BreakTable     {
  258.     char        charTypes[256];
  259.     short        tripleLength;
  260.     short        triples[1];
  261.     } BreakTable, *BreakTablePtr;
  262.  
  263.  
  264. /* Bundle declarations */
  265.  
  266. typedef struct ItlcRecord {
  267.     short        itlcSystem;
  268.     short        itlcReserved;
  269.     char        itlcFontForce;
  270.     char        itlcIntlForce;
  271.     } ItlcRecord;
  272.  
  273. typedef struct ItlbRecord {
  274.     short        itlbNumber;
  275.     short        itlbDate;
  276.     short        itlbSort;
  277.     short        itlbReserved1;
  278.     short        itlbReserved2;
  279.     short        itlbReserved3;
  280.     short        itlbLang;
  281.     char        itlbNumRep;
  282.     char        itlbDateRep;
  283.     short        itlbKeys;
  284.     short        itlbIcon;
  285.     } ItlbRecord;
  286.  
  287.  
  288. #endif _ScriptMgr_